home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2004 April / Gamestar_61_2004-04_dvdb.iso / DVDStar / Editace / hltp.exe / {app} / Source Code / VirtualDub / Setup / registry.cpp < prev    next >
C/C++ Source or Header  |  2003-10-01  |  1KB  |  63 lines

  1. #include <windows.h>
  2. #include "registry.h"
  3.  
  4. HKEY OpenRegKey(HKEY hkBase, char *szKeyName) {
  5.     HKEY hkey;
  6.  
  7.     return RegOpenKeyEx(hkBase, szKeyName, 0, KEY_ALL_ACCESS, &hkey)==ERROR_SUCCESS
  8.             ? hkey
  9.             : NULL;
  10. }
  11.  
  12. HKEY CreateRegKey(HKEY hkBase, char *szKeyName) {
  13.     HKEY hkey;
  14.     DWORD dwDisposition;
  15.  
  16.     return RegCreateKeyEx(hkBase, szKeyName, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, &dwDisposition)==ERROR_SUCCESS
  17.             ? hkey
  18.             : NULL;
  19. }
  20.  
  21. BOOL DeleteRegValue(HKEY hkBase, char *szKeyName, char *szValueName) {
  22.     HKEY hkey;
  23.     BOOL success;
  24.  
  25.     if (!(hkey = OpenRegKey(hkBase, szKeyName)))
  26.         return FALSE;
  27.  
  28.     success = (RegDeleteValue(hkey, szValueName) == ERROR_SUCCESS);
  29.  
  30.     RegCloseKey(hkey);
  31.  
  32.     return success;
  33. }
  34.  
  35. BOOL QueryRegString(HKEY hkBase, char *szKeyName, char *szValueName, char *lpBuffer, int cbBuffer) {
  36.     HKEY hkey;
  37.     BOOL success;
  38.     DWORD type;
  39.  
  40.     if (!(hkey = OpenRegKey(hkBase, szKeyName)))
  41.         return FALSE;
  42.  
  43.     success = (ERROR_SUCCESS == RegQueryValueEx(hkey, szValueName, 0, &type, (LPBYTE)lpBuffer, (LPDWORD)&cbBuffer));
  44.  
  45.     RegCloseKey(hkey);
  46.  
  47.     return success;
  48. }
  49.  
  50. BOOL SetRegString(HKEY hkBase, char *szKeyName, char *szValueName, char *lpBuffer) {
  51.     HKEY hkey;
  52.     BOOL success;
  53.  
  54.     if (!(hkey = CreateRegKey(hkBase, szKeyName)))
  55.         return FALSE;
  56.  
  57.     success = (ERROR_SUCCESS == RegSetValueEx(hkey, szValueName, 0, REG_SZ, (LPBYTE)lpBuffer, strlen(lpBuffer)+1));
  58.  
  59.     RegCloseKey(hkey);
  60.  
  61.     return success;
  62. }
  63.